1. Field of the Invention
The present invention relates generally to computer software for manipulating transient digital data. More particularly, the invention relates to techniques for manipulating the grade or resolution of data before and after the data is transmitted or downloaded.
2. Discussion of Related Art
Over the past several years, the market for entertainment and information in digital format, most commonly digital images, audio, and video, has been growing rapidly. This market is manifested in many different ways, such as compact discs for storing music or video games, laser discs for storing movies, or floppy disks for storing photographs from digital cameras, to name a few examples. In the commercial entertainment and information service fields, it is often desirable to provide samples or previews of the entertainment or information being offered for sale to prospective customers. For example, presently, music stores allow customers to listen to typically short passages of songs before deciding whether to purchase the album. The sound quality of these passages are the same or very close to the sound quality of the recording the customer would purchase. In another example, in the context of xe2x80x9cpay per viewxe2x80x9d for viewing movies through cable TV at home, previews of the movies can be seen at home before paying to watch the entire movie. Similar examples can be found in the information service industry where customers are given a sample of the information they would receive. In all these cases, the grade or resolution of the data presented to the user or customer is of the same grade as the data or information that would ultimately be used by the customer. The value to the customer in these preview or demonstration contexts is limited solely by the portion of the data received. It is typically too short to be of any entertainment or otherwise useful value to the customer. This type of sampling or demonstration to prospective customers or users of data, whether for information or entertainment, is limiting and not always satisfactory or the most desirable way to xe2x80x9ctry outxe2x80x9d the data. Often, users want to see or hear a larger portion of the data before deciding to commit to it. Evaluating a larger work (such as an entire CD, video game, or movie) adequately is sometimes not possible from sampling a small portion of it. However, it is difficult for creators of the data to provide larger portions of the data at the same grade or quality of the original without the risk of losing market value of the original, full-length, high-resolution version. Presently, in many cases, and likely more so in the future, users want to xe2x80x9csamplexe2x80x9d larger portions of a given work or service, or even an entire work, before purchasing or subscribing to it. One way to allow this is to manipulate the underlying digital format of the data, as opposed to simply providing a short sample of the unaltered digital data.
One method of altering the underlying digital format of data is known as stenography. Stenography, a method well known in the field of cryptography is a way to place additional, typically hidden, data into a signal that can later be extracted. The additional data in the signal is meaningful to those who are aware of it and know how to extract it. The signal itself is also apparently meaningful in that it is not simply scrambled or random data.
However the real value in the apparent signal is its role as a xe2x80x9ccoverxe2x80x9d for the hidden or additional data. Typically, the additional data is stored or bidden in the low end of the signal being transmitted. HG. 1 is a block diagram illustrating one manifestation of stenography. A video image 10 is made up of thousands of pixels, a representative pixel 12, having an RGB (red green blue) value. The RGB values for pixel 12 are shown as red value bits 14, green value bits 16, and blue value bits 18. In the example shown each value has 24 bits. It is possible to alter the low end bits 20 in each of the values without significantly affecting the overall value. For example, the lowest six bits in the red value can be altered without significantly changing the basic red shading or color of pixel 12. The same is true for the blue and green values. Using stenography, a sender can replace the low-end bits in values 14, 16, and 18 with data having no relationship with image 10, but when extracted and reconstructed form an unrelated video image 22. Although this process will alter video image 10 slightly, it can be adjusted (e.g. the lowest four bits or two bits can be used) so that the human eye is unable to detect the change or somewhat inferior resolution. Thus, using stenography, a sender can insert a hidden image in a larger image and a receiver, aware of the hidden image, can use digital image processing techniques to extract the hidden image (i.e. know which low end bits of the RGB values to separate). That isxe2x80x2 the intended receiver knows that there is a hidden message or image, and knows how to extract it from the signal. Similar methods can be used to send hidden audio messages in a digital audio stream, such as on a compact disc, or a series of images in a digital video stream. Another method of altering digital data is widely known as JPEG. JPEG is an algorithm and a collection of facilities that take a digital image and compress it by collapsing redundant data. However, neither JPEG or stenography alters digital data by purposefully degrading the quality of the signal so as not to effect the value of the high grade version of the signal. As can be drawn from the description above, stenography is generally used to send a hidden meaningful signal within another, at least superficially, meaningful signal. JPEG alters data by compressing it so that it can be sent faster and more efficiently, or stored using less memory.
Therefore, it would be desirable to have a technique for purposefully downgrading the quality of a signal without diminishing its usefulness for demonstration or other purposes, and allowing the recipient to easily upgrade the signal to its original quality if desired. It would also be desirable to micro-adjust the downgrading of the signal to suit different contexts and needs, and similarly fine tune the upgrading of the downgraded signal if a quality somewhat lower than the original grade is desired.
To achieve the foregoing, and in accordance with the purpose of the present invention, methods, apparatus, and computer readable media are disclosed that adjust the quality or performance of digital media in a reversible manner. In one aspect of the present invention, a method of adjusting the resolution of digital data is described. A mask component having a length of a predetermined number of bits is extracted from a high-resolution ordinal component of digital data having an initial state. Another non-ordered second component having the same predetermined number of bits is received. A logic operation using the mask component and the second, non-ordered component is performed thereby deriving a third component also having the same predetermined number of bits. The high-resolution ordinal component of digital data is altered using the derived third component, thereby adjusting the initial state of the high-resolution ordinal component to a secondary state.
In one embodiment the mask component is re-altered partly or entirely to its original form by performing a logic operation on all or fewer than the predetermined number of bits in the third component and another non-ordered component. The second non-ordered component has a length equal to or less than the predetermined number of bits. This allows the altered ordinal component to revert to a secondary state closer to or the same as the initial state of the high-resolution ordinal component. In another embodiment, the second non-ordered component is generated from a pseudo-random number generator.
In another aspect of the present invention, a method of adjusting the quality of digital media having multiple bits is described. A random number is obtained and then used to alter a portion of the multiple bits in the digital media. This is done by performing an exclusive OR operation using as operands the random number and the portion of the multiple bits thereby deriving an altered segment of bits. This altered segments of bits is used to replace the original portion of the multiple bits thereby adjusting the quality of the digital media.
In one embodiment the random number and the altered segment of bits are used as operands to another exclusive OR operation to derive the original portion of multiple bits used as an operand in the first exclusive OR operation. The derived original portion of multiple bits is used to replace the altered segment thereby readjusting the quality of the digital media to a level closer or equal to its original level of quality or resolution. In another embodiment, the second exclusive OR operation is inputted a shorter subsegment of the random number and a subsegment, of the same length, of the altered segment, thereby allowing a partial upgrade in the quality of the resolution of the digital media.
In another aspect of the present invention, a system for adjusting the resolution of a transient digital data stream is disclosed. The system includes a bit segment extractor that extracts a first portion of bits from a first component of the digital media wherein the first portion has a pre-selected number of bits and the first component has an initial resolution level. A data generator creates a second component of non-ordered or random data having the same number of pre-selected bits. An arithmetic logic unit performs an initial logic operation using the first portion and the second component. This logic operation derives a third component having the same number of pre-selected bits. A data component and segment manipulator alters the first component of the transient digital data stream using the third component wherein the initial state of the first component is adjusted to a secondary, lower resolution state. In one embodiment a second arithmetic logic unit performs another logic operation on all or fewer than the first pre-selected number of bits in the third component and a fourth component of non-ordered data also having a length equal to or less than the first pre-selected number of bits. A receiving data component manipulator reverts the first component where the secondary, lower resolution state of the first component is upgraded to be closer to the transient digital data stream""s initial state. In another embodiment an initial random number generator generates the second component of non-ordered digital data. In yet another embodiment, the second arithmetic logic unit performs an exclusive OR operation between bits in the third component and bits in the fourth component of non-ordered data.
In other aspects of the present invention, computer readable media containing programmed instructions arranged to adjust the resolution and quality of a transient data stream representing digital media are disclosed. In yet other aspects of the present invention, computer data signals embodied in a carrier wave and representing sequences of instructions for adjusting the resolution and quality of a transient data stream representing digital media are disclosed.